// 输出一个整数n和它的逆序数的和
#include <stdio.h>
#include <string.h>

#define N 100

int InvAdd(int n);

void strrev(char str[]);

int main() {
    int n;
    printf("请输入一个整数: ");
    scanf("%d", &n);
    printf("结果: %d\n", InvAdd(n));
    return 0;
}

int InvAdd(int n) {
    char str[N];
    int m;

    // 将整数转换为字符串
    sprintf(str, "%d", n); //"123"

    // 逆序字符串
    strrev(str); //"321"

    // 将逆序字符串转换回整数
    sscanf(str, "%d", &m); //321

    // 返回 n 和逆序数的和
    return n + m;
}

void strrev(char str[]) {
    int len = strlen(str);
    int start = 0;
    int end = len - 1;
    char temp;

    while (start < end) {
        // 交换字符
        temp = str[start];
        str[start] = str[end];
        str[end] = temp;

        // 移动索引
        start++;
        end--;
    }
}
